1. Background and Relevant Art
Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. Accordingly, the performance of many computing tasks is distributed across a number of different computer systems and/or a number of different computing environments. For example, distributed applications can have components at a number of different computer systems.
In some environments, a client application performs a task that relies on functionality at a number of different services. The client application can call each different service to perform one or more actions related to the task. Further, some parts of a task can depend on the completion of actions associated with other parts of the task. However, the services may lack interfaces and/or protocols for reporting when actions complete. Thus, the client application has no way to know when actions performed at any of the services have actually completed.
Lack of knowledge with respect to when service actions complete can prevent the client application from reliably moving forward with the further actions for the task. It may be that the client application is prevented from moving forward at all. Alternately, the client application may assume or infer when service actions have completed and move forward based on the assumption or inference. When an assumption or inference is incorrect, dependent actions may function improperly or not all when other actions, from which they depend, have not actually completed.
When actions for a task function improperly or do not occur, performance of the task and possible also a user experience is degraded. For example, a user may not receive an accurate status report about the task or more complex orchestration between a number services used for the task may fail.